package com.mall4j.cloud.product.service;

import com.mall4j.cloud.api.product.vo.AttrVO;
import com.mall4j.cloud.common.database.dto.PageDTO;
import com.mall4j.cloud.common.database.vo.PageVO;
import com.mall4j.cloud.product.dto.AttrDTO;
import com.mall4j.cloud.product.model.Attr;

import java.util.List;

/**
 * 属性
 *
 * @author JCM
 * @date 2023-04-23 09:25:00
 */
public interface AttrService {
    /**
     * 分页获取属性列表
     * @param pageDTO 分页参数
     * @param attrDTO 搜索参数
     * @return 属性列表分页数据
     */
    PageVO<AttrVO> page(PageDTO pageDTO, AttrDTO attrDTO);

    /**获取属性列表
     *
     *
     * @param attrDTO 搜索列表
     * @return 属性列表
     */
    List<AttrVO> list(AttrDTO attrDTO);

    /**
     * 根据属性id获取属性
     *
     * @param attrId 属性id
     * @return 属性
     */
    AttrVO getByAttrId(Long attrId);

    /**
     * 根据分类及属性类别获取属性列表
     *
     * @param categoryId 分类id
     * @param attrType 属性类别
     * @return
     */
    List<AttrVO> getAttrsByCategoryId(Long categoryId,Integer attrType);

    /**
     * 保存属性
     *
     * @param attr 属性
     */
    void save(Attr attr);

    /**
     * 更新属性
     *
     * @param attr 属性
     */
    void update(Attr attr);

    /**
     * 根据属性id删除属性
     *
     * @param attrId 属性id
     * @param shopId 店铺
     */
    void deleteById(Long attrId,Long shopId);
}
